Educational Pearl: 'Proof-directed debugging' revisited for a first-order version

نویسنده

  • Kwangkeun Yi
چکیده

Some 10 years ago, Harper illustrated the powerful method of proof-directed debugging for developing programs with an article in this journal. Unfortunately, his example uses both higher-order functions and continuation-passing style, which is too difficult for students in an introductory programming course. In this pearl, we present a first-order version of Harper’s example and demonstrate that it is easy to transform the final version into an efficient state machine. Our new version convinces students that the approach is useful, even essential, in developing both correct and efficient programs.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Proof-Directed Debugging and Repair

We describe a project to refine the idea of proof-directed debugging. The intention is to clarify the mechanisms by which failed verification attempts can be used to isolate errors in code, in particular by exploiting the ways in which the branching structure of a proof can match the the structure of the functional program being verified. Our intention is to supply tools to support this process...

متن کامل

Cross-Linguistic Transfer Revisited: The Case of English and Persian

The present study sought to investigate the evidence for cross-linguistic transfer in a partial English immersion and non-immersion educational setting. To this end, a total of 145 first, third and fifth graders in a partial English immersion program and 95 students from the same grade levels in a non-immersion program were chosen. Six different English and Persian tests were administered: the ...

متن کامل

Proof Planning with IsaPlanner Tutorial Exercise

IsaPlanner [1] is a proof planner for the generic interactive theorem prover Isabelle [3]. It provides a framework for the encoding and debugging of proof planning techniques. A higher order version of rippling has been implemented and augmented with generalisation and lemma calculation critics [2]. The proof planning process is interleaved with the execution of the resulting proof plans, thus ...

متن کامل

Coinductive Pearl: Modular First-Order Logic Completeness

Codatatypes are regrettably absent from many programming languages and proof assistants. We make a case for their usefulness by revisiting a classic result: the completeness theorem for first-order logic established through a Gentzen system. Codatatypes help capture the essence of the proof, which establishes an abstract property of derivation trees independently of the concrete syntax or infer...

متن کامل

Proof Engineering

The main purpose of this article is to present a panorama of tools for formal proof analysis and management. The proposed tools are based upon several notions of dependency. Our principal objective is to facilitate the development and the maintenance of theories in proofs assistants in order to improve the productivity of such systems' users. Today, programming environments, control version sys...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • J. Funct. Program.

دوره 16  شماره 

صفحات  -

تاریخ انتشار 2006